Many computer systems utilize graphical user interfaces (GUIs) to permit user interaction with data stored in such systems. In a GUT environment, users are typically able to interact with a computer system through intuitive operations such as "pointing and clicking" on graphical user interface components with a pointer controlled by a mouse or other user interface device. Data is often presented to a user in a GUI environment using a graphical user interface component known as a window. In many computer systems, data to be presented in a window is commonly referred to as a "document".
Similar to a physical window that typically offers a view of only a portion of a person's surroundings, a GUT window typically provides a view of only a portion of the data in a document. Consequently, whenever the amount of data in a document is too great for the entire document to be displayed in a window at the same time, many computer systems rely on graphical user interface components referred to as scroll bars to permit a user to access different portions of a document.
A scroll bar typically permits a user to scroll in a predetermined direction (i.e., vertically or horizontally) through manipulation of various controls on the scroll bar. For example, many scroll bars include an elongated track that represents the overall size of the document in the direction of the member. A slider is anchored on the track at the relative position of the portion of the document that is displayed in the window. The slider may be a fixed size, or may have a variable size along the length of the track to represent the relative size of the portion of the document displayed in the window. By depressing a mouse button while the pointer is disposed over the slider, and then moving the pointer along the length of the track while the mouse button is depressed, a user is typically permitted to scroll through the document (an operation known as "dragging" the slider).
A scroll bar may also include a pair of arrow buttons (also known as unit increment and decrement controls), disposed at each end of the track that permit line-by-line scrolling through the document in response to pointing and clicking on the buttons. Moreover, some scroll bars additionally permit a user to scroll screen-by-screen or page-by-page (known as a block increment or decrement) by pointing and clicking directly on the track between the slider and one of the arrow buttons.
One limitation of existing scroll bar designs is that the mapping between a scroll bar and a document is purely linear in nature. Specifically, movement of a slider along 10% of the track results in movement of the currently displayed position of the document 10%. Under this framework, it is often simpler to navigate in relatively smaller documents since movement of a slider a predetermined distance results in a comparatively smaller scroll through the document than would occur with a relatively larger document. Scrolling accuracy is therefore affected by the relative size of the document. In fact, it can become extremely difficult to scroll through very large documents with a slider since movement of the slider by even the smallest distance may result in a document scroll of several lines at a time.
Another difficulty with a linear mapping between a scroll bar and a document is that any two similarly-sized portions of a document are given exactly the same degree of emphasis on a scroll bar regardless of the relative importance of the content contained each portion. However, it has been found that different portions of many documents tend to be more important than others, typically by virtue of the relative importance of a portion's content, the relative frequency and/or amount that a portion is accessed, etc. Nonetheless, existing scroll bars treat the different portions in the same manner, often leading to inefficiencies in accessing a document.